Geometric Algebra: Emerging 3d graphics abstractions
Translation, scaling, rotation and (plane)-reflection are well-known and important linear and affine transformations for 3d geometry. From math we know that these can be representated by matrix multiplication. But are there other representations with the potential to be useful and elegant?
An interesting question towards that end is whether all four of these operations are necesssary, or whether there is smaller subset of operations that is complete and can represent the others. Of these operations, scaling is the only that can change the volume of an object, and reflection is the only that can change the handedness of an object. Therefore, these two operations must be important. And indeed it turns out that every rotation and translation can be represented by two reflections. Together, an abritrary affine operation can be represented by four reflections.
Seminar
- Papers:
- A minimalist Construction of Geometric Algebra
- An elementary Construction of Geometric Algebra (very short)
- Please look for recent papers on people that use geometric algebra for elegant descriptions (for example of 3d graphics)
- Videos
- Tool:
- Links:
Project
In a project, we will implementing a simple DSL following the strategy described above in the paper about geometric algebra in Lean. Lean is a modern, general-purpose programming language featuring advanced functional programming constructs such as pattern matching, recursion, immutable datastructures, type classes, dependent types and more. At the same time, Lean compiles to C++, featuring easy interopability with low-level libraries where necessary. Let's try it out and see how far we can go :)